package com.wei.czz.framework.common.service;

import com.wei.czz.common.enums.common.dict.DictEnum;
import com.wei.czz.common.tool.PageDto;
import com.wei.czz.common.vo.common.dict.DictFormVo;
import com.wei.czz.framework.common.entity.DictEntity;

import java.util.List;

/**
 * Created by IntelliJ IDEA.
 *
 * @author wei
 * date: 2022-08-13 19:46:35
 * className: DictService 系统字典操作请求服务接口
 * version: 1.0
 * description:
 */
public interface DictService {

    /**
     * 保存系统字典操作
     * @param dict 系统字典对象
     */
    void saveOrEdit(DictEntity dict);

    /**
     * 分页查询系统字典数据列表操作
     * @param dictFormVo 封装字典查询参数的对象
     * @return 系统字典分页数据
     */
    PageDto<DictEntity> getPageDictList(DictFormVo dictFormVo);

    /**
     * 获取字典操作
     * @param id 主键
     * @return 系统字典对象
     */
    DictEntity get(Long id);

    /**
     * 获取字典操作
     * @param idList 主键列表
     * @return 系统字典对象列表
     */
    List<DictEntity> getList(List<Long> idList);

    /**
     * 获取有效字典操作
     * @param dictEnum 字典枚举对象
     * @return 字典对象
     */
    DictEntity getEffect(DictEnum dictEnum);

    /**
     * 获取系统字典操作
     * @param dictEnum 字典枚举对象
     * @return 系统字典对象列表
     */
    List<DictEntity> findList(DictEnum dictEnum);

    /**
     * 获取有效字典列表操作
     * @param dictEnum 字典枚举对象
     * @return 字典对象列表
     */
    List<DictEntity> findEffectList(DictEnum dictEnum);

    /**
     * 获取字典下一个默认排序等级操作
     * @return 下一个默认排序等级数据
     */
    Integer getNextSort();

    /**
     * 删除字典操作
     * @param idList 主键列表
     */
    void delete(List<Long> idList);

}

